#!/bin/bash
# 挂载已安装的 Arch Linux 系统（用于修复或 chroot）

set -e

echo "========================================="
echo "  挂载 Arch Linux 系统到 /mnt"
echo "========================================="
echo ""

# 颜色
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m'

echo "=== 第 1 步：检查分区 ==="
echo ""
lsblk -f /dev/sda
echo ""

# 确认是否继续
echo -e "${YELLOW}警告：将挂载 /dev/sda1 (EFI) 和 /dev/sda2 (Btrfs) 到 /mnt${NC}"
echo "是否继续？(y/n)"
read -r response
if [[ ! "$response" =~ ^([yY][eE][sS]|[yY])$ ]]; then
    echo "操作已取消"
    exit 0
fi

echo ""
echo "=== 第 2 步：卸载可能存在的挂载 ==="
# 先尝试卸载（如果已经挂载）
umount -R /mnt 2>/dev/null || true
echo -e "${GREEN}✓${NC} 清理完成"
echo ""

echo "=== 第 3 步：挂载根分区 (@ 子卷) ==="
mount -o subvol=@ /dev/sda2 /mnt
echo -e "${GREEN}✓${NC} 根分区已挂载"
echo ""

echo "=== 第 4 步：创建挂载点 ==="
mkdir -p /mnt/boot/efi
echo -e "${GREEN}✓${NC} 挂载点已创建"
echo ""

echo "=== 第 5 步：挂载 EFI 分区 ==="
mount /dev/sda1 /mnt/boot/efi
echo -e "${GREEN}✓${NC} EFI 分区已挂载"
echo ""

echo "=== 第 6 步：验证挂载 ==="
echo ""
echo "挂载信息："
findmnt /mnt
echo ""
findmnt /mnt/boot/efi
echo ""

echo "根目录内容："
ls -la /mnt/ | head -15
echo ""

echo "EFI 分区内容："
ls -la /mnt/boot/efi/
echo ""

echo "检查关键目录："
for dir in /mnt/etc /mnt/usr /mnt/var /mnt/home /mnt/boot; do
    if [ -d "$dir" ]; then
        echo -e "${GREEN}✓${NC} $dir 存在"
    else
        echo -e "${RED}✗${NC} $dir 不存在 - 系统可能不完整！"
    fi
done
echo ""

echo -e "${GREEN}=========================================${NC}"
echo -e "${GREEN}  挂载完成！${NC}"
echo -e "${GREEN}=========================================${NC}"
echo ""
echo "现在可以执行："
echo ""
echo "  arch-chroot /mnt"
echo ""
echo "完成后记得卸载："
echo ""
echo "  exit              # 退出 chroot"
echo "  umount -R /mnt    # 卸载所有分区"
echo ""

